eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
PURGE1(add2(N, X)) -> RM2(N, X)
PURGE1(add2(N, X)) -> PURGE1(rm2(N, X))
EQ2(s1(X), s1(Y)) -> EQ2(X, Y)
IFRM3(true, N, add2(M, X)) -> RM2(N, X)
IFRM3(false, N, add2(M, X)) -> RM2(N, X)
RM2(N, add2(M, X)) -> EQ2(N, M)
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
PURGE1(add2(N, X)) -> RM2(N, X)
PURGE1(add2(N, X)) -> PURGE1(rm2(N, X))
EQ2(s1(X), s1(Y)) -> EQ2(X, Y)
IFRM3(true, N, add2(M, X)) -> RM2(N, X)
IFRM3(false, N, add2(M, X)) -> RM2(N, X)
RM2(N, add2(M, X)) -> EQ2(N, M)
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
EQ2(s1(X), s1(Y)) -> EQ2(X, Y)
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
EQ2(s1(X), s1(Y)) -> EQ2(X, Y)
POL( s1(x1) ) = x1 + 1
POL( EQ2(x1, x2) ) = x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
IFRM3(true, N, add2(M, X)) -> RM2(N, X)
IFRM3(false, N, add2(M, X)) -> RM2(N, X)
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IFRM3(true, N, add2(M, X)) -> RM2(N, X)
IFRM3(false, N, add2(M, X)) -> RM2(N, X)
Used ordering: Polynomial Order [17,21] with Interpretation:
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
POL( IFRM3(x1, ..., x3) ) = x3 + 1
POL( true ) = 1
POL( false ) = max{0, -1}
POL( add2(x1, x2) ) = x2 + 1
POL( eq2(x1, x2) ) = max{0, -1}
POL( 0 ) = max{0, -1}
POL( s1(x1) ) = max{0, x1 - 1}
POL( RM2(x1, x2) ) = x2 + 1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
RM2(N, add2(M, X)) -> IFRM3(eq2(N, M), N, add2(M, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
PURGE1(add2(N, X)) -> PURGE1(rm2(N, X))
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PURGE1(add2(N, X)) -> PURGE1(rm2(N, X))
POL( true ) = 1
POL( false ) = 1
POL( add2(x1, x2) ) = x2 + 1
POL( rm2(x1, x2) ) = x2
POL( eq2(x1, x2) ) = 1
POL( s1(x1) ) = 1
POL( 0 ) = max{0, -1}
POL( PURGE1(x1) ) = x1
POL( ifrm3(x1, ..., x3) ) = max{0, x1 + x3 - 1}
POL( nil ) = max{0, -1}
rm2(N, nil) -> nil
eq2(s1(X), 0) -> false
eq2(0, 0) -> true
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
eq2(s1(X), s1(Y)) -> eq2(X, Y)
eq2(0, s1(X)) -> false
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
eq2(0, 0) -> true
eq2(0, s1(X)) -> false
eq2(s1(X), 0) -> false
eq2(s1(X), s1(Y)) -> eq2(X, Y)
rm2(N, nil) -> nil
rm2(N, add2(M, X)) -> ifrm3(eq2(N, M), N, add2(M, X))
ifrm3(true, N, add2(M, X)) -> rm2(N, X)
ifrm3(false, N, add2(M, X)) -> add2(M, rm2(N, X))
purge1(nil) -> nil
purge1(add2(N, X)) -> add2(N, purge1(rm2(N, X)))